/*
 * Inventario.java
 *
 * Created on 7 de mayo de 2008, 11:14 AM
 */

package administrador;
import java.util.logging.Level;
import java.util.logging.Logger;
import javax.swing.event.TableModelEvent;
import javax.swing.event.TableModelListener;
import javax.swing.table.TableModel;
import javax.swing.table.*;
import java.sql.*;
import javax.swing.*;
import java.awt.event.*;
import java.awt.*;
/**
 *
 * @author  Usuario
 */
public class Inventario extends javax.swing.JPanel {
    
    
    Conexion conexion;
    int empleado=0;
    int bodega=1;
    String fecha;
    Usuario user;
    JTable tabla;
    JScrollPane js;
    int numInventario;
    
    /** Creates new form Inventario */
    public Inventario(Conexion cEnt,int BEnt,Usuario user) {
        bodega=BEnt;
        this.user=user;
        conexion=cEnt;
        initComponents();
        
        cargaVendedor(user);
        fecha=new java.sql.Date(System.currentTimeMillis()).toString();
        lbl_fecha.setText(fecha);
        refrescar();
        
    }
    
    public void cargaVendedor(Usuario user){
   lbl_vend.setText(user.nombre);
   }
    
    //Metodos
    
     public void refrescar(){
    
        ResultSet respuesta=null;
        respuesta=conexion.consultarBase("select * from Inventario;");
          
        //Obtengo Filas-Arreglo de Titulos de Columnas
        int filas=conexion.obtenerFilas(respuesta);
        String[] titulosCol=conexion.obtenerColumnas(respuesta);
        
        //Creo la tabla:
        
        CrearTabla(filas,titulosCol);
        llenaTabla(respuesta,titulosCol.length,filas);
       
       
    }
    
    public void llenaTabla(ResultSet r,int columnas,int filas){
        try{
            r.beforeFirst();
            
            int j=0;
            while(r.next()) {
                
                
                for(int i=0;i<columnas;i++) {
                    
                    Object toma=r.getObject(i+1);
                    //System.out.println("toma valor:"+toma+" * fila:"+j+" * column:"+i);
                    try{
                        tabla.setValueAt(toma,j,i);
                    }catch(java.lang.ArrayStoreException e){
                        tabla.setValueAt("null",j,i);
                    }
                }
                
            j++;    
            }
        }catch(SQLException sqle){
            System.out.println("Error al mostrar los datos");
            System.err.println(sqle);
        }
        
    }
    
public void CrearTabla(int filas,String[] titulos){
        
        int columnas=titulos.length;
        String[][] tabla0=new String[filas][columnas];
       
        tabla= new JTable(tabla0,titulos);
        
        //Aqui le especifico para que la tabla acepte valores doubles e int:
        //--------------------------------------------------------------------
        final boolean[] canEdit = new boolean [columnas];
        for(int p=0;p<columnas;p++){
        canEdit[p]=false;
        }
        tabla.setModel(new javax.swing.table.DefaultTableModel(
            tabla0,titulos  
        ) {
           // boolean[] canEdit = new boolean [] { false, false, false, false};

            public boolean isCellEditable(int rowIndex, int columnIndex) {
                return canEdit [columnIndex];
            }
        });
        //---------------------------------------------------------------------
         //Le doy el evento del LCick del Mouse:
        tabla.addMouseListener(new java.awt.event.MouseAdapter() {
            public void mouseClicked(java.awt.event.MouseEvent evt) {
                tablaMouseClicked(evt);
            }
        });
        //remuevo el JScroll para que no se monte cuando cree el nuevo:
        //*************************************************************
        try{
        jPanel1.remove(js);
        }catch(java.lang.NullPointerException e){}
        //*************************************************************
        
        //Pongo en la tabla:
            js = new JScrollPane(tabla);
                        
            js.setBorder(javax.swing.BorderFactory.createLineBorder(new java.awt.Color(198, 196, 196)));
            js.setBounds(22, 100, 580, 400);
            js.setVisible(true);
            jPanel1.add(js);
            js.updateUI();
    }
 

 private void tablaMouseClicked(java.awt.event.MouseEvent evt) {
    // Evento del click del mouse sobre la tabla:
         int fila=tabla.getSelectedRow();
         //System.out.println("Click en la Fila :"+fila);
         this.numInventario=Integer.valueOf(tabla.getValueAt(fila,0).toString());
         
 }
    
    
    /** This method is called from within the constructor to
     * initialize the form.
     * WARNING: Do NOT modify this code. The content of this method is
     * always regenerated by the Form Editor.
     */
    // <editor-fold defaultstate="collapsed" desc="Generated Code">//GEN-BEGIN:initComponents
    private void initComponents() {

        jPanel1 = new javax.swing.JPanel();
        jLabel1 = new javax.swing.JLabel();
        jLabel2 = new javax.swing.JLabel();
        jLabel3 = new javax.swing.JLabel();
        lbl_fecha = new javax.swing.JLabel();
        lbl_vend = new javax.swing.JLabel();
        jSeparator1 = new javax.swing.JSeparator();
        jButton1 = new javax.swing.JButton();
        jButton2 = new javax.swing.JButton();
        jButton3 = new javax.swing.JButton();
        jButton4 = new javax.swing.JButton();

        setLayout(new java.awt.BorderLayout());

        jPanel1.setBorder(javax.swing.BorderFactory.createTitledBorder("Inventario"));
        jPanel1.setLayout(null);

        jLabel1.setFont(new java.awt.Font("Tahoma", 0, 18));
        jLabel1.setText("Inventarios");
        jPanel1.add(jLabel1);
        jLabel1.setBounds(20, 20, 130, 30);

        jLabel2.setFont(new java.awt.Font("Tahoma", 1, 11));
        jLabel2.setText("Fecha:");
        jPanel1.add(jLabel2);
        jLabel2.setBounds(610, 60, 50, 14);

        jLabel3.setFont(new java.awt.Font("Tahoma", 1, 11));
        jLabel3.setText("Vendedor:");
        jPanel1.add(jLabel3);
        jLabel3.setBounds(610, 70, 60, 30);

        lbl_fecha.setForeground(new java.awt.Color(153, 0, 0));
        lbl_fecha.setText("fecha");
        jPanel1.add(lbl_fecha);
        lbl_fecha.setBounds(670, 60, 80, 14);

        lbl_vend.setForeground(new java.awt.Color(153, 0, 0));
        lbl_vend.setText("vendedor");
        jPanel1.add(lbl_vend);
        lbl_vend.setBounds(670, 80, 70, 20);
        jPanel1.add(jSeparator1);
        jSeparator1.setBounds(20, 60, 580, 10);

        jButton1.setText("Crear Nuevo Inventario");
        jButton1.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                jButton1ActionPerformed(evt);
            }
        });
        jPanel1.add(jButton1);
        jButton1.setBounds(610, 110, 160, 23);

        jButton2.setText("Modificar");
        jButton2.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                jButton2ActionPerformed(evt);
            }
        });
        jPanel1.add(jButton2);
        jButton2.setBounds(610, 140, 160, 23);

        jButton3.setText("Borrar");
        jButton3.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                jButton3ActionPerformed(evt);
            }
        });
        jPanel1.add(jButton3);
        jButton3.setBounds(610, 170, 160, 23);

        jButton4.setText("Cerrar Inventario");
        jButton4.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                jButton4ActionPerformed(evt);
            }
        });
        jPanel1.add(jButton4);
        jButton4.setBounds(610, 200, 160, 23);

        add(jPanel1, java.awt.BorderLayout.CENTER);
    }// </editor-fold>//GEN-END:initComponents

    private void jButton3ActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_jButton3ActionPerformed
// TODO add your handling code here:
        int fila=tabla.getSelectedRow();
        System.out.println("La fila seleccionada es:"+fila);
        if(fila>=0){
        int opccion=0;
        opccion=JOptionPane.showConfirmDialog(this,"Seguro Deseo Borrar el inventario Seleccionado?","Alerta",0);
        if(opccion==0){
        int codigoP=Integer.parseInt(tabla.getValueAt(fila,0).toString());    
        System.out.println("Borrado este Inventario codigo: "+codigoP);
        conexion.eliminarFila("delete from inventario where idInventario="+codigoP+";");
        conexion.eliminarFila("delete from productoinv where cod_inv="+codigoP+";");
        
        refrescar();
        }
        }else{
        JOptionPane.showMessageDialog(this,"No se ha seleccionado ningun Inventario","Informacion",JOptionPane.INFORMATION_MESSAGE);
        }
    }//GEN-LAST:event_jButton3ActionPerformed

    private void jButton2ActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_jButton2ActionPerformed
// TODO add your handling code here:
         
     
     int seleccion=-1;
     try{
     seleccion=tabla.getSelectedRow();
     if(seleccion==-1){
        JOptionPane.showMessageDialog(this,"Tienes que seleccionar almenos Uno de la Lista","Informacion",JOptionPane.INFORMATION_MESSAGE);
     }
     }catch(java.lang.NullPointerException e){
        JOptionPane.showMessageDialog(this,"Tienes que seleccionar almenos Uno de la Lista","Informacion",JOptionPane.INFORMATION_MESSAGE);
     }
    
     if (seleccion>=0)
     {
        
        int fila=tabla.getSelectedRow();
        System.out.println("Click en la Fila :"+fila);
        String inventCod=String.valueOf(tabla.getValueAt(fila,0));
        ProductosInventario pi=new ProductosInventario(inventCod,conexion,bodega,user);
     }   
    }//GEN-LAST:event_jButton2ActionPerformed

    private void jButton1ActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_jButton1ActionPerformed
// TODO add your handling code here:
    VentCreaInv vci=new VentCreaInv(conexion,this,bodega);
    
    
    }//GEN-LAST:event_jButton1ActionPerformed

private void jButton4ActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_jButton4ActionPerformed
// TODO add your handling code here:
    String codigoInvC=tabla.getValueAt(tabla.getSelectedRow(),0).toString();
    System.out.println("El Inventario seleccionado es:"+codigoInvC);
    int opccion=JOptionPane.showConfirmDialog(this,"Seguro Desea Cerrar este Inventario?","Alerta",0);
        
    if(opccion==0){
        cerrarInventario(codigoInvC);
        conexion.actualizarBase("update inventario set abierto=false where idInventario="+codigoInvC+";");
        this.refrescar();
    }
}//GEN-LAST:event_jButton4ActionPerformed

public void cerrarInventario(String codigoInv){
        
//Reemplazo los productos contados x los productos que se encuentran
//en el inventario de la Computadora. Deberia generar un reporte de
//perdidas y desajustes de la mercaderia y un aciento que ajuste la
//contabilidad.

//Inicio la Transaccion: 
conexion.consultarBase("START TRANSACTION;");
//Saco la Fecha Actual
String fechaActual=new java.sql.Date(System.currentTimeMillis()).toString();
//Panel donde aparece el Inventario:
ReporteInventario reportInv=new ReporteInventario();

reportInv.area.append("REPORTE INVENTARIO -"+fechaActual+"- \n");

int contadoVerific=0;

//Verificadores de Actualizaciones:
int numActSobran=0;
int numActFaltan=0;
int numActNormal=0;

//Vector para la Encontrar Productos no actualizados
String [][] vectProd=creaVectActualizaciones(codigoInv);

try {
        //Saco todo los productos del ultimo inventario:
        ResultSet resp = conexion.consultarBase("SELECT * FROM productoinv where cod_inv=" + codigoInv + ";");
        
        //Recorro por los productos que SOBRAN SOLAMENTE
        resp.beforeFirst();
        reportInv.area.append("\nPRODUCTOS QUE SOBRAN:\n");

        reportInv.area.append("      \t      \t\tCantidades\t       \t \n");
        reportInv.area.append("Codigo\tNombre\t\tCompu - Contada\tSobran :\tCantidad * ( perdidaAlCosto || perdidaVenta)\n");

        double acumulaCosto=0;
        double acumulaNormal=0;
        while (resp.next()) {

            String codigo = resp.getString(2);
            String nombre = resp.getString(4);
            int cantidadContada = resp.getInt(9);
            
            //Saco el stock actual del producto:
            ResultSet respAc=conexion.consultarBase("SELECT b.cantidad,p.precio_normal,p.precio_costo FROM producto p, itm_bodega b where p.cod_producto like b.cod_producto and b.cod_producto like '"+codigo+"';");
            respAc.beforeFirst();
            respAc.next();
            
            
            
            
            if(conexion.obtenerFilas(respAc)<1){
                faltaCrear(codigo);
                respAc=conexion.consultarBase("SELECT b.cantidad,p.precio_normal,p.precio_costo FROM producto p, itm_bodega b where p.cod_producto like b.cod_producto and b.cod_producto like '"+codigo+"';");
            }
                //En el caso de que exista tanto el Producto como item y como Producto
                int cantidadAct=respAc.getInt(1);
                double precioNormal=respAc.getDouble(2);
                double precioCosto=respAc.getDouble(3);

                //Obtengo la Variacion:
                String et1="";
                int variacion=0;

                if (cantidadContada != cantidadAct) {
                    if (cantidadContada > cantidadAct) {
                        et1="Sobran :";
                        variacion=cantidadContada-cantidadAct;

                        //Actualizo los productos que sobran:

                        boolean actualiza1=conexion.actualizarBaseResp("update producto set stock_total="+cantidadContada+" where cod_producto like '"+codigo+"'");
                        boolean actualiza2=conexion.actualizarBaseResp("update itm_bodega set cantidad="+cantidadContada+" where cod_producto like '"+codigo+"' and cod_bodega="+bodega+";");

                        contadoVerific++;//Contador del total de actualizaciones
                        numActSobran++;//Contador de Productos Sobrantes

                        //Marco como chequeado:
                        if(actualiza1&&actualiza2){
                        vectProd=BuscoyCheck(vectProd,codigo);
                        }

                        double subtotalCosto=precioCosto*variacion; acumulaCosto=acumulaCosto+subtotalCosto;//Guardo para la suma Precio Costo
                        double subtotalVenta=precioNormal*variacion;acumulaNormal=acumulaNormal+subtotalVenta;//Guardo para la suma Precio Venta
                        if (nombre.length()>10){
                        nombre=nombre.substring(0,10);
                        }else{
                        nombre=nombre.substring(0,nombre.length());
                        }
                        
                        reportInv.area.append(codigo+"\t"+nombre+"\t"+cantidadAct+"\t"+cantidadContada+"\t"+et1+"\t"+variacion+"\t*(\t"+subtotalCosto+"\t||\t"+subtotalVenta+"\t)\n");
                    }

                }
                //Para los productos que tienen la misma cantidad contada que la actual
                if (cantidadContada == cantidadAct) {
                    contadoVerific++;//Contador de Productos Totales
                    numActNormal++;//Contador de Productos que estan Correctos

                    //Marco como chequeado:
                    vectProd=BuscoyCheck(vectProd,codigo);
                    }

            
            
        }
        
        reportInv.area.append("\n TotalCosto=\t"+acumulaCosto+" \tTotalNormal=\t"+acumulaNormal+"\n");
        
        double acumulaCosto2=0;
        double acumulaNormal2=0;
        //Recorro por los productos de FALTAN SOLAMENTE
        resp.beforeFirst();
        reportInv.area.append("\nPRODUCTOS QUE FALTAN:\n");
        reportInv.area.append("      \t      \t\tCantidades\t       \t \n");
        reportInv.area.append("Codigo\tNombre\t\tCompu - Contada\tFaltan:\tCantidad * ( perdidaAlCosto || perdidaVenta)\n");


        while (resp.next()) {

            String codigo = resp.getString(2);
            String nombre = resp.getString(4);
            int cantidadContada = resp.getInt(9);
            
            //Saco el stock actual del producto:
            //Saco el stock actual del producto:
            ResultSet respAc=conexion.consultarBase("SELECT b.cantidad,p.precio_normal,p.precio_costo FROM producto p, itm_bodega b where p.cod_producto like b.cod_producto and b.cod_producto like '"+codigo+"';");
            respAc.beforeFirst();
            respAc.next();


            if(conexion.obtenerFilas(respAc)<1){
            faltaCrear(codigo);
            respAc=conexion.consultarBase("SELECT b.cantidad,p.precio_normal,p.precio_costo FROM producto p, itm_bodega b where p.cod_producto like b.cod_producto and b.cod_producto like '"+codigo+"';");
            }


                int cantidadAct=respAc.getInt(1);
                double precioNormal=respAc.getDouble(2);
                double precioCosto=respAc.getDouble(3);

                //Obtengo la Variacion:
                String et1="";
                int variacion=0;

                if (cantidadContada != cantidadAct) {
                    if (cantidadContada < cantidadAct) {
                        et1="Faltan :";
                        variacion=cantidadAct-cantidadContada;
                        //Actualizo los productos que sobran:
                        boolean actualiza1=conexion.actualizarBaseResp("update producto set stock_total="+cantidadContada+" where cod_producto like '"+codigo+"'");
                        boolean actualiza2=conexion.actualizarBaseResp("update itm_bodega set cantidad="+cantidadContada+" where cod_producto like '"+codigo+"' and cod_bodega="+bodega+";");
                        contadoVerific++;//Contador Total de Productos
                        numActFaltan++;//Contador de Productos Faltantes

                        //Marco la como actualizado
                        if(actualiza1&&actualiza2){
                        vectProd=BuscoyCheck(vectProd,codigo);
                        }

                        double subtotalCosto=precioCosto*variacion; acumulaCosto2=acumulaCosto2+subtotalCosto;
                        double subtotalVenta=precioNormal*variacion;acumulaNormal2=acumulaNormal2+subtotalVenta;
                        
                        if (nombre.length()>10){
                        nombre=nombre.substring(0,10);
                        }else{
                        nombre=nombre.substring(0,nombre.length());
                        }

                        reportInv.area.append(codigo+"\t"+nombre+"\t"+cantidadAct+"\t"+cantidadContada+"\t"+et1+"\t"+variacion+"\t*(\t"+subtotalCosto+"\t||\t"+subtotalVenta+"\t)\n");
                        

                    }
                }




        }


        reportInv.area.append("\n TotalCosto="+acumulaCosto2+" TotalNormal="+acumulaNormal2+"\n");
        
        //Saco Perdida la Diferencia :
        double DifCosto=acumulaCosto-acumulaCosto2;
        double DifVenta=acumulaNormal-acumulaNormal2;
        reportInv.area.append("\n\n DifCosto="+DifCosto+" DifVenta="+DifVenta+"\n");


      //Si existio algun error lo guardo en el area al final
      escriboProblemaCierre(vectProd,reportInv.area);


    //Guardo el Reporte Final en la tabla del Inventario:
      String texto=reportInv.area.getText();
      conexion.actualizarBaseResp("update inventario set reporteFinal='"+texto+"' where idInventario="+codigoInv+";");
      
     //Verifico las actualizaciones
      ResultSet rAct=conexion.consultarBase("SELECT * FROM producto p;");
      int tproductos=conexion.obtenerFilas(rAct);
      if(tproductos==contadoVerific){
      conexion.consultarBase("COMMIT;");
       System.out.println("LAS ACTUALIZACIONES COMPLETAS CON EXITO FUERON: "+contadoVerific+" DE UN TOTAL DE: "+tproductos+"!");
       JOptionPane.showMessageDialog(this,"LAS ACTUALIZACIONES COMPLETAS CON EXITO FUERON: "+contadoVerific+" DE UN TOTAL DE: "+tproductos+"!","Informacion",JOptionPane.INFORMATION_MESSAGE);
      
      }else{
      conexion.consultarBase("ROLLBACK;");
       System.out.println("LAS ACTUALIZACIONES COMPLETAS CON EXITO FUERON: "+contadoVerific+" DE UN TOTAL DE: "+tproductos+"!");
       JOptionPane.showMessageDialog(this,"Existio un problema en la Verificacion de ACTUALIZACIONES \n"+"LAS ACTUALIZACIONES COMPLETAS CON EXITO FUERON: "+contadoVerific+" DE UN TOTAL DE: "+tproductos+"!","Informacion",JOptionPane.INFORMATION_MESSAGE);

      }
      
    } catch (SQLException ex) {
      JOptionPane.showMessageDialog(this,"Existio un problema de inconsistencia en la base de datos!!"+ex.toString(),"Informacion",JOptionPane.INFORMATION_MESSAGE);
      conexion.consultarBase("ROLLBACK;");
      Logger.getLogger(Inventario.class.getName()).log(Level.SEVERE, null, ex);

    }

}


public void faltaCrear(String codigo){
//Creo el prodcucto que aparece en el inventario y no en los productos Actuales
    ResultSet r=conexion.consultarBase("select * from producto where cod_producto like '"+codigo+"'");

    System.out.println("Entra en La Operacion Falta Crear");

    int cuenta=conexion.obtenerFilas(r);
    System.out.println("Las filas son"+conexion.obtenerFilas(r));

    if (cuenta>0){
    //Si esta creado como producto
    System.out.println("Entra en el otrooooo");
    }else{
    //No esta creado como producto por lo que le creo:
    System.out.println("No esta Creado el Producto");
        conexion.insertarDatos("insert into producto values('"+codigo+"',23,'Producto Error Inv','Descripcion Error',0,0,5,0,'2008-02-01',0);");
        conexion.insertarDatos("insert into itm_bodega values("+this.bodega+",'"+codigo+"',0,5);");
        System.out.println("insert into itm_bodega values("+this.bodega+",'"+codigo+"',0,5);");
        System.out.println("insert into producto values('"+codigo+"',23,'Producto Error Inv','Descripcion Error',0,0,5,0,'2008-02-01',0);");
        JOptionPane.showMessageDialog(this,"Se creo el Producto:"+codigo+" en el inventario Actual\n Se recomienda revisarlo ya que se creo con cantidad 0 y valores nulos!!","Informacion",JOptionPane.INFORMATION_MESSAGE);
    }


    //En el caso que solo falte itm_bodega
    r=conexion.consultarBase("select * from itm_bodega where cod_producto like '"+codigo+"'");

    cuenta=conexion.obtenerFilas(r);
    System.out.println("Las filas son"+conexion.obtenerFilas(r));

    if (cuenta>0){
    //Si esta creado como producto
    System.out.println("Entra en el otrooooo");
    }else{
    //No esta creado como producto por lo que le creo:
    System.out.println("No esta Creado el Producto");
        conexion.insertarDatos("insert into itm_bodega values("+this.bodega+",'"+codigo+"',0,5);");
        System.out.println("insert into itm_bodega values("+this.bodega+",'"+codigo+"',0,5);");
        JOptionPane.showMessageDialog(this,"Se creo el Producto:"+codigo+" en el inventario Actual (falto en itm_bodega)\n Se recomienda revisarlo ya que se creo con cantidad 0 y valores nulos!!","Informacion",JOptionPane.INFORMATION_MESSAGE);
    }




   //Inserto si no aparece en los productos de Inventario
    r=conexion.consultarBase("select * from productoinv where cod_producto like '"+codigo+"'");
    cuenta=conexion.obtenerFilas(r);
    System.out.println("Las filas son"+conexion.obtenerFilas(r));
    if (cuenta>0){
    //Si esta creado como productoinv
        System.out.println("Entra en el otrooooo");
    }else{
    //No esta creado como productoinv por lo que le creo:
         System.out.println("No esta Creado el Producto");
        conexion.insertarDatos("insert into productoinv values('"+numInventario+"','"+codigo+"',23,'Producto Error','Descripcion producto Error',0,0,5,0,'2008-02-01',0);");
        System.out.println("insert into productoinv values('"+numInventario+"','"+codigo+"',23,'Producto Error','Descripcion producto Error',0,0,5,0,'2008-02-01',0);");
        


        JOptionPane.showMessageDialog(this,"Se creo el Producto:"+codigo+" en la lista del Inventario "+numInventario+"\n Se recomienda revisarlo ya que se creo con cantidad 0 y valores nulos!!","Informacion",JOptionPane.INFORMATION_MESSAGE);
    }

JOptionPane.showMessageDialog(this,"Acabo la creacion !!","Informacion",JOptionPane.INFORMATION_MESSAGE);
}



public void escriboProblemaCierre(String [][] vectPro,javax.swing.JTextArea area){
int largo=vectPro.length;
int contador=0;
int contadorErrores=0;
area.append("\n\nPROBLEMAS EN LA ACTUALIZACION:\n");
area.append("codigo\t\t actualizado\n");
while(contador<largo){
    if(vectPro[contador][1].equals("0")){
    area.append(vectPro[contador][0]+"\t\t"+vectPro[contador][1]+"\n");
    contadorErrores++;
    }
    contador++;
}
area.append("Se dieron errores de actualizacion en :"+contadorErrores+" PRODUCTOS ");
}



public String [][] BuscoyCheck(String[][] vectPro,String codigo){
int contador=0;
int filas=vectPro.length;
System.out.println("El largo de las filas del vector es:"+filas);
while(contador<filas){
String prod=vectPro[contador][0];
if(prod.equals(codigo)){
vectPro[contador][1]="1";
}
contador++;
}


return vectPro;
}


public String[][] creaVectActualizaciones(String codigoInv) {
    
String [][] vecProductos = null;
int filas=0;
try{
    //Saco todo los productos del ultimo inventario:
        ResultSet resp = conexion.consultarBase("SELECT cod_producto FROM producto p");
        filas=conexion.obtenerFilas(resp);
        
        vecProductos=new String[filas][2];  
        //Recorro por los productos que SOBRAN SOLAMENTE
        resp.beforeFirst();
        int contador=0;
        while (resp.next()) {
            String codigoPro=resp.getString(1);
            vecProductos[contador][0]=codigoPro;
            System.out.println("Guarda codigo:"+codigoPro+" en la posicion"+contador);
            vecProductos[contador][1]="0";
            contador++;
        }
    
    

} catch (SQLException ex) {
      Logger.getLogger(Inventario.class.getName()).log(Level.SEVERE, null, ex);
}    

//Saco el numero de productos y muestro los codigos

/*System.out.println("-----------------------------------------------------------");
System.out.println("-----------------------------------------------------------");
System.out.println("-----------------------------------------------------------");
System.out.println("El numero de productos es:"+filas);
int contador2=0;
while(contador2<=(filas-1)){
System.out.println(vecProductos[contador2][0]+"  con valor:\t "+vecProductos[contador2][1]);
contador2++;
}
System.out.println("-----------------------------------------------------------");
System.out.println("-----------------------------------------------------------");
System.out.println("-----------------------------------------------------------");
*/


return vecProductos;
}


    
    // Variables declaration - do not modify//GEN-BEGIN:variables
    private javax.swing.JButton jButton1;
    private javax.swing.JButton jButton2;
    private javax.swing.JButton jButton3;
    private javax.swing.JButton jButton4;
    private javax.swing.JLabel jLabel1;
    private javax.swing.JLabel jLabel2;
    private javax.swing.JLabel jLabel3;
    private javax.swing.JPanel jPanel1;
    private javax.swing.JSeparator jSeparator1;
    private javax.swing.JLabel lbl_fecha;
    private javax.swing.JLabel lbl_vend;
    // End of variables declaration//GEN-END:variables
    
}
